The present invention relates to computer systems, and in particular to requests for resources managed by a computer system.
Computer systems are used to execute software applications, such as relational databases. A relational database is a large collection of tables of data which users desire to access. A relational database manager is an application that is used to access that data. There are an incredible number of other applications, many of which provide information from a central computer or server to users working on client computers attached to the server. These applications may generically be referred to as resource management systems.
The client computers generate requests for the information from the server. Each such request is communicated to the server, the server processes each individual request, and then hopefully returns the information requested. There is a significant amount of processing or overhead associated with individual requests for information. The communication of each request has associated processing overhead, as well as the processing involved in actually retrieving the information. If there are a large number of independent and individual requests, the resource management system can become a bottleneck, bogged down by the overhead associated with the individual requests.
In relational database applications, the server runs a database management system. The requests are in the form of queries, such as structured query language (SQL) queries that identify the desired information. To process an SQL query, the database management system parses the query, and runs it through an optimizer in order to determine the most efficient manner in which to execute the query and return the results of the query. This is done for each individual query.
Some relational database management systems allow the sending of multiple updates, inserts and deletes at the same time, thus saving some of the overhead required when processing individual requests or queries. These are generated from a single source, and are not independent.
There is a need to reduce the number of individual requests from independent sources. There is a need to reduce the performance bottleneck associated with such individual requests at the resource management system. There is yet a further need to do so in a manner that is independent of the resource management system.
Independent and individual requests are aggregated and presented as a single request to a resource management system. The response from the resource management system is subsequently resolved back to the individual requests.
In one embodiment, multiple independent requestors, such as web browsers or credit card authorization devices are coupled to a server by a network. The network may be the Internet, Ethernet or other type of communication medium, including wireless. The requestors generate multiple independent requests. The server receives such requests and sorts them into classes of requests, which are capable of being aggregated and processed as a single request by a resource management system. Parameters are identified from the individual requests and used in the aggregated request.
In a further embodiment, the resource management system receives an aggregated request and accesses the resource, such as a database management system. In such a system, the request may be a parameterized query for information from one or more tables in a database. The database management system returns a set of rows, and the server matches each row of the set with the individual request, and provides the appropriate information back to the individual requestors.